import { IPSBICubeDimension } from './ipsbicube-dimension';
import { IPSSysBICubeLevel } from './ipssys-bicube-level';
import { IPSSysBICubeObject } from './ipssys-bicube-object';
import { IPSSysBIDimension } from './ipssys-bidimension';

/**
 *
 * @export
 * @interface IPSSysBICubeDimension
 */
export interface IPSSysBICubeDimension extends IPSBICubeDimension, IPSSysBICubeObject {
  /**
   * 立方体维度层级集合
   *
   * @type {IPSSysBICubeLevel[]}
   */
  getAllPSSysBICubeLevels(): IPSSysBICubeLevel[] | null;

  /**
   * 立方体维度层级集合
   *
   * @type {IPSSysBICubeLevel[]}
   */
  get allPSSysBICubeLevels(): IPSSysBICubeLevel[] | null;

  findPSSysBICubeLevel(objKey: any): IPSSysBICubeLevel | null;

  /**
   * 智能报表维度
   *
   * @type {IPSSysBIDimension}
   */
  getPSSysBIDimension(): IPSSysBIDimension | null;

  /**
   * 智能报表维度
   *
   * @type {IPSSysBIDimension}
   */
  get psSysBIDimension(): IPSSysBIDimension | null;

  /**
   * 智能报表维度（必须存在）
   *
   * @type {IPSSysBIDimension}
   */
  getPSSysBIDimensionMust(): IPSSysBIDimension;
}
